package com.bai.localshop.service;

import com.bai.localshop.pojo.dto.*;
import com.bai.localshop.pojo.vo.UserLoginVO;
import com.bai.localshop.pojo.vo.UserPageVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import com.bai.localshop.pojo.entity.User;


/**
 * 用户服务接口
 */
public interface AuthService extends IService<User> {

    /**
     * 根据用户ID查询用户（包含角色）
     */
    UserDTO getUserById(Long id);

    /**
     * 检查用户名是否存在
     */
    Boolean hasUsername(String username);

    /**
     * 用户登录
     *
     * @param requestParam
     * @return
     */
    UserLoginVO login(UserLoginDTO requestParam);

    /**
     * 用户注册
     *
     * @param requestParam
     */
    void register(UserRegisterDTO requestParam);

    /**
     * 修改用户
     * @param requestParam
     */
    void update(UserUpdateDTO requestParam);

    /**
     * 检查用户是否登录
     * @return
     */
    Boolean checkLogin();

    boolean isAdmin(Long userId);

    /**
     * 退出登录
     */
    void logout();

}